package com.sc.study.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 页签证官
 *
 * @author 徐赫阳
 * @date 2021/09/01
 */
@Data
public class PageVO<T> implements Serializable {

    /**
     * 串行版本uid
     */
    private static final long serialVersionUID = 370093926535785832L;

    @ApiModelProperty(value="页码")
    private Integer page;

    @ApiModelProperty(value="每页显示数量")
    private Integer pageSize;

    @ApiModelProperty(value="数据列表")
    private List<T> list;

    @ApiModelProperty(value="总数量")
    private Integer total;

    /**
     * 页签证官
     */
    public PageVO(){

    }

    /**
     * 页签证官
     *
     * @param page     页面
     * @param pageSize 页面大小
     * @param list     列表
     * @param total    总计
     */
    public PageVO(Integer page, Integer pageSize, List<T> list, Integer total) {
        this.page = page;
        this.pageSize = pageSize;
        this.list = list;
        this.total = total;
    }

    /**
     * 设置页面
     *
     * @param page     页面
     * @param pageSize 页面大小
     * @param list     列表
     * @param total    总计
     * @return {@link PageVO}
     */
    public static PageVO setPage(Integer page, Integer pageSize, List list, Integer total){
        return new PageVO(page,pageSize,list,total);
    }
}
